package com.lyy.polymorphic;


/**
 * @Author:  GZQ
 * @date:  2024/11/17 16:53
 * @description:
 */

public class Master {

    public String name;

    public Master(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    // 主人给小狗 喂食 骨头
    public void feed(Dog dog, Bone bone) {
        System.out.println("主人 " + name + " 给 " + dog.getName() + " 吃 " + bone.getName());
    }

    // 主人给 小猫 喂 小黄鱼
    public void feed(Cat cat, Fish fish) {
        System.out.println("主人 " + name + " 给 " + cat.getName() + " 吃 " + fish.getName());
    }

    // 如果动物很多, 食物很多
    // ===> feed 方法很多, 不利于管理和维护
    // Pig --> Rice
    // Tiger ----> meat...
    // ...

    // 上面方式： 代码的复用性不高, 而且不利于代码维护 ---> 所以引出多态

    // 多[多种]态[状态]基本介绍
    /*
    * 方法或对象具有多种形态。是面向对象的第三大特征, 多态是建立在封装和继承基础之上的。
    * */
}
